#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define SZ 100
#include<string.h>
//1、编写程序，从键盘输入一个字符串，判断是否回文字符串（回文字符串是指正序逆序都完全一样的字符串, 如：abcddcba）
//（1）程序分析设计（使用标准流程图符号完成流程图）
//
//（2）源代码（不能截图，只能复制粘贴）
//
//（3）运行结果截图（只截取相应运行结果截图）


//char zgq(char ch[], int sz)
//{
//	int left = 0;
//	int right = sz - 1;
//	while (left < right)
//{
//	if (ch[left] == ch[right])
//	{
//		left++;
//		right--;
//	}
//	else
//	{
//		return 0;
//	}
//}
//	return 1;
//}
//int main()
//{
//	char ch[SZ] = { 0 };
//	scanf("%s", &ch);
//	int sz = strlen(ch);
//	int ret = zgq(ch, sz);
//	if (ret == 0)
//	{
//		printf("该字符串不是回文字符串\n");
//	}
//	else
//		printf("该字符串是回文字符串\n");
//	
//	return 0;
//}
//
//

//2、 编写程序，将一句话中的英文单词位置倒置，但不改变单词内部结构，例如：将“I am from shanghai”倒置为“shanghai from am I”.
//提示：使用空格作为识别单词的标识。
//（1）程序分析设计（使用标准流程图符号完成流程图）
//（2）源代码（不能截图，只能复制粘贴）
//
//（3）运行结果截图（只截取相应运行结果截图）
//void zgq(char* left, char* right)
//{
//	
//	while (left<right)
//	{
//		char tmp = *left;
//		*left = *right;
//		*right = tmp;
//		left++;
//		right--;
//	}
//	
//}
//int main()
//{
//	//输入：
//	char ch[SZ] = { 0 };
//	gets(ch);
//	//倒置//l am from shanghai
//	int len = strlen(ch);
//	zgq(ch, ch + len - 1);//逆序函数 iahgnahs morf ma l
//	char* start = ch;
//	char* end = start;
//	while (*start!='\0')
//	{
//		while (*end!=' ' && *end !='\0')
//		{
//			end++;
//		}
//		zgq(start, end - 1);
//		start = end + 1;
//		end = start;
//	}
//	//输出
//	printf("%s\n", ch);
//	return 0;
//}


//3、编写程序，从键盘获取字符串，字符串包含字母和数字，字母和数字分开，并分别输出。
//如：输入字符串为1sH3Uip7i9k, 则分别输出数字：1379，输出小写字母：sipik，以及输出大写字符:HU
//（1）程序分析设计（使用标准流程图符号完成流程图）
//
//（2）源代码（不能截图，只能复制粘贴）
//
//（3）运行结果截图（只截取相应运行结果截图）
//若字符的 ASCII 码在'0'到'9'之间，那么该字符是数字。
//若字符的 ASCII 码在'a'到'z'之间，该字符是小写字母。
//若字符的 ASCII 码在'A'到'Z'之间，该字符是大写字母。

//1sH3Uip7i9k

int main() {
    char ch[SZ] = { 0 };
 
    gets(ch);
    int len = strlen(ch);
    char cch1[SZ] = { 0 };
    char cch2[SZ] = { 0 };
    char cch3[SZ] = { 0 };
    int j1 = 0, j2 = 0, j3 = 0;

    for (int i = 0; i < len; i++) 
    {
        if (ch[i] >= '0' && ch[i] <= '9') {
            cch1[j1++] = ch[i];
        }
        else if (ch[i] >= 'a' && ch[i] <= 'z') {
            cch2[j2++] = ch[i];
        }
        else if (ch[i] >= 'A' && ch[i] <= 'Z') {
            cch3[j3++] = ch[i];
        }
    }
    
    cch1[j1] = '\0';
    cch2[j2] = '\0';
    cch3[j3] = '\0';
    printf("数字：%s 小写字母：%s 大写字母：%s", cch1, cch2, cch3);
    /*printf("%s\n", cch1);
    printf("%s\n", cch2);
    printf("%s\n", cch3);*/

    return 0;
}

